function KKB.Panel_Models(Panel)
	Panel_Models = Panel
	Panel_Models:SetSize(100, 400)
	Panel_Models:Clear(true)
	Panel_Models.contents = vgui.Create("DListLayout")
	Panel_Models.contents:Clear()
	
	local BlockedModels = vgui.Create("DListView")
	BlockedModels:AddColumn("Model")
	BlockedModels:SetTall(150)
	BlockedModels:SetMultiSelect(true)
	function KKB.BlockedModels_Reload_BlockedModels()
		BlockedModels:Clear()
		for _,v in pairs(KKB.BlockedModels) do
			BlockedModels:AddLine(v)
		end
	end
	KKB.BlockedModels_Reload_BlockedModels()
	Panel_Models:AddControl("Label", {Text = "Current Blocked Models:"})
	Panel_Models:AddPanel(BlockedModels)
	
	local AddButton = vgui.Create( "DButton" )
	AddButton:SetText( "Block Model In Crosshairs" )
	AddButton.DoClick = function( button )
		local Entity = LocalPlayer():GetEyeTrace().Entity
		if ( Entity:GetClass() == "prop_physics" ) then
			local Model = Entity:GetModel()
			if ( not table.HasValue( KKB.BlockedModels, Model ) ) then
				net.Start( "KKB_BlockedModels_Add" )
				net.WriteString( Model, 32 )
				net.SendToServer()			
			end
		end
	end
	Panel_Models:AddPanel(AddButton)
	
	local DeleteButton = vgui.Create( "DButton" )
	DeleteButton:SetText( "Remove Selected Model(s) From Blocked List" )
	DeleteButton.DoClick = function( button )
		local SelectedLines = BlockedModels:GetSelected()
		if ( #SelectedLines > 0 ) then
			local Models = {}
			for _,v in pairs(SelectedLines) do
				local Model = v.Columns[1]:GetValue()
				if ( KKB.BlockedModels != nil and table.HasValue(KKB.BlockedModels, Model) ) then
					table.insert(Models, Model)
				end
			end
			if ( #Models > 0 ) then
				net.Start( "KKB_BlockedModels_Delete" )
				net.WriteTable( Models )
				net.SendToServer()
			end
		end
	end
	Panel_Models:AddPanel(DeleteButton)
end